存储接口协议 | 您所在的位置:网站首页 › 简述pcie usb总线的基本功能 › 存储接口协议 |
目录 存储接口类型 SCSI接口协议 基本概念 SCSI的通信模型 SCSI总线逻辑架构图(并行) SCSI通信过程 CDB命令描述块 SCSI寻址 FC协议讲解 FC基础概念 FC协议结构 FC通信 FC交换网络工作流程:(以封装SCSI协议为例) FC拓扑结构 FC协议的端口类型 FC适配器(FC HBA卡) SAS接口协议(串行SCSI) 基本概念 SAS协议层次结构 SCSI、SAS、SATA之间的关系 PCIE接口协议 基本概念 PCIE协议 存储接口类型SCSI接口、FC接口、SAS接口 这三个都是用于承载SCSI上层协议的 对于SCSI接口来说,有人可能蒙掉了,SCSI不是上层协议的名字么,为何底层物理接口也叫SCSI? 因为SCSI这个标准最早的时候把上层协议一直到底层传输协议、物理层、网络层全给定义了 SATA接口 仅用于承载ATA协议 其前身IDE接口,也承载ATA协议 为低端应用而设计的机械硬盘,不适用于大数据吞吐量和多线程传输 PCIE标准接口 承载PCIE传输协议,NVMe over PCIE;也有SCSI over PCIE但是没有普及 U.2接口 其中包含SAS、SATA和PCIE x4三套接口,充分利用空间,将三套金手指信号做到接口上,各干各的;意味着通过此接口可以插入一块SAS或SATA或PCIE盘 U.2实质上是一种combo组合接口。 m.2 接口广泛用于平板电脑里的固态存储介质 其底层可承载PCIE传输协议,然后可以实现SCSI over PCIE,NVMe over PCIE 其也可以直接跑SATA信号,相当于新型的SATA接口。 emmc接口 没有连接器,直接从flash颗粒管脚以贴片的方式与emmc控制器的管脚相连 承载onfi/toogle协议;属于并行总线 ufs接口 没有连接器,直接从flash颗粒管脚以贴片的方式与ufs控制器的管脚相连,属于串行总线 接口类型主要优势主要劣势应用领域SCSI性能较高价格较高企业级存储FC高性能;高可靠性价格较高高端存储SATA价格低,容量高性能、可靠性较低中低端存储SAS高性能,高可靠性价格较高中高端存储其中SCSI、FC、PCIE不仅可以作为接口协议,还可以作为存储的传输协议 SCSI接口协议 基本概念SCSI小型计算机系统接口,通过此接口所搭建的链路中跑的报文信息都叫做SCSI协议 SCSI协议是主机与存储磁盘通信的基本协议DAS就是使用SCSI协议实现主机服务器与存储设备的互联SCSI线缆一般只有10m到20m左右,不利于长距离传输SCSI 协议的责任,就是在确认写操作已经正确完成后向操作系统报告成功,而不管在磁盘上物理存储是如何配置以及写操作是如何执行的 SCSI的通信模型SCSI采用分层结构,类似于TCP/IP七层模型,SCSI分为三层结构: SCSI应用层:SCSI协议采用C/S架构;SCSI客户端(可以是应用程序、文件系统、操作系统等)位于主机,发起I/O请求;SCSI服务器位于目标设备(例如存储阵列)中,对客户端的I/O请求做出响应;SCSI请求和回应通过下层协议传输 SCSI传输层:包含发起方和目标方通信的服务和协议;SCSI设备之间通过一系列的命令实现数据块的传送(分为命令的执行、数据的传送、命令的确认三个阶段) SCSI物理层(互联层):完成SCISI设备对总线的连接,完成发送方和目标方的选择等功能 SCSI总线逻辑架构图(并行)SCSI ID与LUN的概念 我们知道SCSI总线上可挂载的SCSI设备(指的存储设备)数量是有限的,一般为8个或者16个,可以用target ID(SCSI ID)来描述这些设备;设备只要加入系统,就会有一个代号,我们在区分设备的时候,只需要说其代号即可 而实际上我们需要用来表示的对象,是远远超过该数字的,于是我们引入了LUN的概念,也就是说LUN的作用就是扩充了Target ID;每个Target下都可以有多个LUN Device,我们通常简称为LUN. 每个Target上最多有32个LUN,一个LUN对应一个逻辑设备(一个逻辑设备可能是一个分区,也有可能是一个独立的磁盘.) 主机适配器 是安装在计算机主板上的硬件设备,提供一个SCSI总线的接口,以便SCSI设备可以与计算机进行数据传输 主机适配器也被分配一个唯一的SCSI ID,一般为SCSI ID 7 作用 负责处理SCSI设备的请求和命令,并将其转为计算机能够理解的格式 负责管理SCSI设备的地址空间,以便计算机能够正确地识别和访问每个设备 注意 一台计算机可以有多个主机适配器,主机适配器可以控制一个或多个SCSI总线,一条SCSI总线可以连接多个目标设备 终结器 终结报文的传输(限制广播报文的传输) SCSI通信过程Initialor和主机适配器之间的关系 主机适配器是连接SCSI设备和计算机的接口,是硬件设备 Initialor是通过主机适配器提供的接口控制SCSI总线上的设备,实现数据在设备之间的传输和管理,是进行数据传送的控制器 Initialor通过SCSI总线与Target设备相连接(对于iSCSI来说Initialor不和Target直连) 工作流程(Initialor和Target构成了一个典型的C/S架构) 发起方Initialor(发起数据访问的设备) Initialor可以是PC/服务器上的某个应用程序(也可以是文件系统、操作系统等) Initialor通过发起SCSI请求来获取存储资源 每个Initialor也有相应的Initialor ID进行标识,并且是唯一的(Initialor不属于SCSI设备) SDS 此处的SDS不知道指的是软件定义存储还是SCSI设备描述符(SCSI Device Descriptor) 目前暂定为软件定义存储,帮助发起方和目标方交互 目标方Target(等待数据访问的设备--存储) 回复SCSI请求并通过LUN提供业务 注意事项:LUN是对目标器的扩展,启动器没有LUN来扩展 SCSI读写流程 此图片来自:存储协议篇(一) - 墨天轮 完整的SCSI请求 一个完整的SCSI请求由CDB、数据、命令属性信息构成 其中CDB描述了该SCSI命令的具体细节(包括操作类型、数据处理方式等) CDB命令描述块CDB定义了与发起方请求相关的,会被目标设备执行的操作指令 CDB的结构(最大16个字节) CDB包含了1个字节的操作码 后接5个或更多字节的特定指令参数 结尾1个字节的控制字段 因此CDB的长度会根据不同的指令参数而改变 响应——状态码 当目标器完成设备命令处理后,会返回状态响应给启动器,用于指示命令的完成状态(不会回复CDB) SCSI通过Status code状态码和Status qualifier状态限定符来告知命令的处理结果 Status code状态码 状态码状态描述00hGOOD命令正常完成,未发生错误02hCHECK CONDITION命令处理返回Sense Data,需要根据Sense信息确定后续执行的动作04hCONDITION MET仅限于为其指定的命令使用08hBUSY设备处于忙碌状态,暂时无法处理新的命令28hTASK SET FULL设备task set资源不足40hTASK ABORTED命令被终止Status qualifier配合状态码提供更多的返回该状态的原因 SCSI寻址寻找目标方 FC协议是一个区别于MAC协议的一个二层协议 FC是一种高性能的串行连接标准,最开始为一种传输协议,由于其性能较高,逐渐发展到前端作为主机接口,并逐渐发展为点对点、交换机等组网 FC协议结构FC-4:高层协议映射 将SCSI、IP、ATM等协议封装到FC网络中进行传输----封装IP、ATM的功能已经不使用了 FC-3:通用服务(压缩解压缩、加密解密等功能) 本层包括条带(通过多条通道传输数据), 多点传送(将一个信息发送到多个目标)和查寻组(为一个节点映射多个端口)等先进功能。 FC-2:数据分发 本层定义了在网络内发送数据的基本规则 1) 如何将数据切分为小帧; 2) 一次可以发送多少数据(流控制); 3) 帧应当发送到什么地方。它同时包括根据应用定义服务等级。 FC-1:字节编码 进行编码或解码信号 本层记录8b/10b传输编码用于平衡传输位流 编码还可以作为数据传输和接受错误检测机制(2bit是校验码) 8G FC使用 8/10bit字节编码,16G FC使用64/66bit 字节编码 FC-0:物理界面 连接物理介质的界面,定义编码和解码标准等 常用连接线为铜缆和光缆 FC通信FC通信主要依靠WWN和FCID号来实现,具体如下: 当有一个WWN登录到交换机的某一个端口时,交换机会为其分配一个FCID地址 同时交换机也将会创建FCID和登录WWN地址之间的关联并维护他们之间的关系 WWN号:类似于以太网中的MAC地址的作用(64bit) 硬件的全球唯一标示(由WWNN和WWPN组成) WWNN-----节点号 FC网络中每个设备自身都有一个WWNN WWPN----- 端口号 FC网络中每个设备的端口都有一个WWP FCID:类似于以太网中的IP地址(24bit) 由于WWN号用来寻址太长,会影响到路由的性能,索引采用另外一种方式(FCID)来进行寻址(当时这个FCID需要与WWN关联--通过Flogin表关联且本地有效) FCID是由FC交换机分配给终端的 1、光纤网络搭建完成后,分配各自FC交换机的Domain ID: 由于Domain ID最多只有239个地址,所以网络中最多只可以有239台FC交换机 (如果FC交换机划分了VSAN----可以将一台交换机看作多台交换机,那这个VSAN也占用一个Domain ID) NPV模式——扩展FC SAN的规模 NPV交换机可以扩展FC SAN的规模,且不需要占用Doamin ID的资源(一般部署在网络边缘处,位于N节点---服务器 和交换机之间) 可以解决在中大型网络中Domain ID不够用,影响网络的部署性和扩展性的问题 2、生成FSPF路由表使整个FC网络光纤交换机之间可以查询路由并通信 FC交换机拥有Domain ID后,会维护一张FSPF(光纤最短路径优先)路由表 路由表维护Domian ID、Domain ID的Cost、出接口三种信息 FSPF--类似于路由表,只有在进行数据转发需要用到 Cost计算方法:2Gbps 500,4Gbps 1000 以此类推 3、终端使用HBA卡接入光纤交换机获取FCID 服务器或者存储通过HBA卡接入光纤交换机,通过自己的WWN向光纤交换机申请FCID 此时光纤交换机会将自己的Domain ID加上Area ID和Port ID分配给服务器或者存储 并在光纤交换机上产生一张本地有效的Flogin表,此表记录每个端口接入终端的信息(VSAN、FCID、WWN之间的映射关系) Flogin表:关联自身分配的FCID和WWN 本地有效 Flogin协议的FCID为0xFFFFFE(预留地址) 4.服务器与磁盘阵列之间通信,执行三次Plogin(动态口令)操作建立联系 第一次让终端在各个光纤交换机上注册,这时每个光纤交换机都是一个FCNS服务器(FC名称服务器),并产生一个 FCNS数据表,并同步给整个FC网络的光纤交换机 FCNS数据表里包含端口所属VSAN,FCID是什么,端口是什么类型 ,PWWN,什么网络类型,功能类型,应用哪种QoS等信息 PLogin协议的FCID为0xFFFFFC(预留地址)。 FCNS数据表中功能类型一般分为两类: 一类是发起者(Initiator),一般为服务器、一类是目标(target),一般为磁盘阵列 FCNS数据表(统计目标器和启动器),全局同步 再次发送Plogin给光纤交换机,请求查看一下FC网络中有那些类型为target的可用磁盘阵列 发送Plogin给target建立链接(以下是服务器和存储建立连接,存储和服务器建立连接的过程类似) 5.服务器与磁盘阵列建立连接成功,执行PRLI操作,建立SCSI进行交互连接 传输过程同上,三次操作;只是报文类型由Plogin变为PRLI 6.开始传输SCSI数据块 传输过程同上,只是类型变为SCSI块数据 点对点 两台设备直接连接到对方(最简单的一种拓扑) 仲裁环 所有设备连接到一个类似于令牌环的环路上(在这个换路上添加/移除一个设备会导致环路上所有活动中断;通过光纤通道集线器的方法能将众多设备连接到一起,形成一个逻辑上的环路,这种环路可以避免环路节点上的故障不会影响整个换路上的通信-多用于小型SAN环境中,现在已不再使用) 交换网络 构建现代FC SAN的方式;使用FC交换机连接主机和存储设备 FC协议的端口类型设备(节点)端口: N_Port:Fabric网络架构中,FC终端设备通过此接口直连连接FC交换机 L_Port:仲裁环上(私有环)的FC终端交换机的端口类型(Loop),连接FCAL集线器 NL_Port:仲裁环上(开放环)的FC终端交换机的端口类型,连接FCAL集线器 交换机端口: E_Port:扩展端口(用于连接交换机到交换机的端口),需要在此端口承载控制信息(路由协议等) F_Port:Fabric网络架构中,FC交换机通过此接口连接N端口的FC终端设备 FL_Port:Fabric Loop端口,连接FCAL集线器设备 G_Port:普通(Generic)端口,可以转换为E或F端口。 U_Port:通用(Universal)端口,用于描述自动端口检测的术语。 FC适配器(FC HBA卡)是插在主机侧的 FC总线适配器,支持连接FC网络的应用,实现高带宽高性能存储组网方案 SAS的基本概念 SAS是Serial Attached SCSI的缩写,即串行连接SCSI(SAS是SCSI总线协议的串行标准) SAS的特点 1、SAS串行通信方式允许将多个数据通路全速与各个设备通信 2、SAS通过串行技术获得了更高的传输速率和更好的扩充性(SAS的背板可以兼容SATA和SAS两种硬盘) 3、SAS支持将多个窄端口捆绑形成宽端口(1根窄端口的速率是12GB,一般是4个窄通道连接在一起) 4、SAS结构采用扩展器(Expander)进行接口扩展,并兼容SATA硬盘 一个核心Expander连接外接分支的Expander(最多支持128个Expander)1个外接分支Expander可以连接128个磁盘设备所以1个SAS域理论上最多可以连接16384个磁盘设备但是由于传输带宽的限制,目前最佳的实践是168块盘(7个分支扩展器分别连接24个硬盘,也就是7个24位硬盘槽)5、SAS采用全双工模式 物理层:对于线缆、接头、收发器等硬件进行了定义; PHY层: 包括了最低级的协议,比如编码方案和供电/复位序列等等; 链路层:描述的是如何控制phy层连接管理,以及CRC校验和速率匹配处理等; 端口层:描述的是链路层和传输层的接口,包括如何请求、中断、如何选择建立连接; 传输层:定义了如何将所传输的命令、状态、数据封装在SAS帧中,以及如何分解SAS帧; 应用层:描述了如何在不同类型的应用下使用SAS的细节。 SCSI、SAS、SATA之间的关系在物理层: SAS接口和SATA接口完全兼容,SATA硬盘可以直接使用在SAS的环境中从接口标准上而言,SATA是SAS的一个子标准,因此SAS控制器可以直接操控SATA硬盘,但是SAS却不能直接使用在SATA的环境中,因为SATA控制器并不能对SAS硬盘进行控制在协议层,SAS由3种类型协议组成,根据连接的不同设备使用相应的协议进行数据传输。 串行SCSI协议(SSP)用于传输SCSI命令;SATA通道协议(STP)用于SAS和SATA之间数据的传输。SCSI管理协议(SMP)用于对连接设备的维护和管理;因此在这3种协议的配合下,SAS可以和SATA以及部分SCSI设备无缝结合 PCIE接口协议 基本概念PCIE一种高速串行计算机扩展总线标准,有两种存在形式(一个是PCIE接口,一个是PCIE通道) PCIE接口:(4种尺寸) PCIE通道:传输从存储接口过来的数据 除了PCIE接口可以通过通过PCIE通道传输,M.2接口、USB4.0、雷电3/4接口也是通过PCIE通道传输的 不同PCIE版本和不同PCIE接口尺寸对应的带宽 PCIE版本\PCIE尺寸x1x2x4x8x16PCIE1.0250MB/s500MB/s1GB/s2GB/s4GB/sPCIE2.0500MB/s1GB/s2GB/s4GB/s8GB/sPCIE3.01GB/s2GB/s4GB/s8GB/s16GB/sPCIE4.02GB/s4GB/s8GB/s16GB/s32GB/s特点 PCIE可以提高系统吞吐量、可扩展性和灵活性 支持热插拔(PCIE总线接口插槽包括“热插拔检测信号”) 节省IO,减少板级空间,降低干扰 PCIE协议数据链路层的重要作用就是要保证PCI Express总线传输的数据包的正确性和可靠性。 事务层(Transaction Layer)主要作用有两个:一是接受来自软件层送来的读、写请求,或者本身创建一个请求封装包传到数据链路层,这种数据包称为“处理层数据包”(TransactionLayer Packet,TLP) 另一个作用是接受从链路层传来的响应数据包(DataLink Layer Packet,DLL P),并将其与相关的软件请求相关联,传送至软件层(应用层)处理 |
CopyRight 2018-2019 实验室设备网 版权所有 |